51单片机学习 |
您所在的位置:网站首页 › 穿袜子的脚图片 真实的 › 51单片机学习 |
外部中断0和1
外部中断原理编程原理(外部中断0)代码实现
外部中断原理
外部中断0:(P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。 外部中断1:(P3.3)可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。 编程原理(外部中断0) 首先我们对中断允许控制寄存器IE赋值,打开中断总开关,令EA=1.然后我们还需要打开外部中断0的开关,令EX0=1 EX0(IE.0),外部中断0允许位; ET0(IE.1),定时/计数器T0中断允许位; EX1(IE.2),外部中断1允许位; ET1(IE.3),定时/计数器T1中断允许位; ES(IE.4),串行口中断允许位; EA (IE.7), CPU中断允许(总允许)位。最后再对中断请求标志TCON寄存器赋值,我们可以选择的外部中断0的触发方式有两种,一种是低电平触发方式,一种是下降沿的触发方式。如果选择低电平触发,则令IT0=0,如果选择下降沿触发,则令IT0=1。IT0(TCON.0),外部中断0触发方式控制位。 当IT0=0时,为低电平触发方式。 当IT0=1时,为边沿触发方式(下降沿有效)。 IE0(TCON.1),外部中断0中断请求标志位。 IT1(TCON.2),外部中断1触发方式控制位。 IE1(TCON.3),外部中断1中断请求标志位。 TF0(TCON.5),定时/计数器T0溢出中断请求标志位。 TF1(TCON.7),定时/计数器T1溢出中断请求标志位。 4.完成以上过程就完成了对中断系统的初始化 ,然后需要编程中断服务函数。格式如下: void init0() interrupt 0 using m { 函数体 }函数名(自定):init0 0:外部中断0的中断标号 m:寄存器组 在实际编程中using m 可省去 代码实现通过独立按键来控制第一个led灯的亮灭 #include typedef unsigned char u8; typedef unsigned int u16; sbit led1=P2^0; sbit K3=P3^2;//通过独立按键触发外部中断0 void intint0()//外部中断初始化 { EA=1; EX0=1; IT0=1; } void delay(u16 i)//延时函数 { while(i--); } void main() { intint0();//在主函数中调用初始化外部中断0 while(1); } void int0() interrupt 0 //中断服务函数 { delay(1000);//延时消抖 if(K3==0) { led1=~led1;//是第一个led灯状态反转 } } |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |